/*
* Copyright (C) 2012-2013, <Aeihu.z, aeihu.z@gmail.com>.
*
* Game Scenario Maker is a free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* Version 2(GPLv2) as published by the Free Software Foundation.
*/

////==============================================================================
//#ifndef _CENTITY_H_
//    #define _CENTITY_H_
//
//#include <vector>
//#include <string>
//
//#include "CArea.h"
//#include "CAnimation.h"
//#include "CCamera.h"
//#include "CFPS.h"
//#include "CSurface.h"
//
////==============================================================================
//enum {
//    ENTITY_TYPE_GENERIC = 0,
//
//    ENTITY_TYPE_PLAYER
//};
//
////==============================================================================
//enum {
//    ENTITY_FLAG_NONE     = 0,
//
//    ENTITY_FLAG_GRAVITY    = 0x00000001,
//    ENTITY_FLAG_GHOST    = 0x00000002,
//    ENTITY_FLAG_MAPONLY    = 0x00000004
//};
//
////==============================================================================
//class CEntity {
//    public:
//        static std::vector<CEntity*>    EntityList;
//
//    protected:
//        CAnimation      Anim_Control;
//
//        SDL_Surface*    Surf_Entity;
//        
//    public:
//        std::string    Name;
//        float    X;
//        float    Y;
//        std::vector<SDL_Rect>    Destination;
//
//        int        Width;
//        int        Height;
//        int        Alpha;
//
//        bool    MoveUp;
//        bool    MoveLeft;
//        bool    MoveRight;
//        bool    MoveDown;
//        bool    MouseDown;
//
//    public:
//        int        Type;
//
//        bool    Dead;
//        int        Flags;
//
//        std::vector<string>    _CmdList;
//    protected:
//        float    SpeedX;
//        float    SpeedY;
//
//        //float    AccelX;
//        //float    AccelY;
//
//        //bool    CanJump;
//
//    public:
//        float    MaxSpeedX;
//        float    MaxSpeedY;
//
//    protected:
//        int        CurrentFrameCol;
//        int        CurrentFrameRow;
//        bool*    Pause;
//
//    protected:
//        int        Col_X;
//        int        Col_Y;
//        int        Col_Width;
//        int        Col_Height;
//
//    public:
//        CEntity();
//        CEntity(std::string name);
//        CEntity(float x, float y);
//        CEntity(std::string name, float x, float y);
//
//        virtual ~CEntity();
//
//    public:
//        virtual bool OnLoad(const char* File, int Width, int Height, int MaxFrames);
//
//        virtual void OnLoop();
//
//        virtual void OnRender(SDL_Surface* Surf_Dest);
//
//        virtual void OnCleanup();
//
//        virtual void OnAnimate();
//
//        virtual bool OnCollision(CEntity* Entity);
//
//    public:
//        void    OnMove(float MoveX, float MoveY);
//
//        void    SetDestination(int x, int y, bool* target);
//
//        //bool     Jump();
//
//        void     StopMove(bool b);
//
//    public:
//        bool    Collides(int oX, int oY, int oW, int oH);
//
//    private:
//        bool     PosValid(int NewX, int NewY);
//
//        bool     PosValidTile(CTile* Tile);
//
//        bool     PosValidEntity(CEntity* Entity, int NewX, int NewY);
//
//        void    OnAutoMove();
//
//        void    Init(std::string name, float x, float y);
//};
//
////==============================================================================
//class CEntityCol {
//    public:
//        static std::vector<CEntityCol>    EntityColList;
//
//    public:
//        CEntity* EntityA;
//        CEntity* EntityB;
//
//    public:
//        CEntityCol();
//};
//
////==============================================================================
//
//bool inline CEntityCompare (CEntity* i,CEntity* j) { return (i->Y < j->Y); }
//
//#endif
